***************** * * * The X-Systems * * * ***************** Now there are 5 library systems starting with an X in their name and 3 of them end in master.library. I think a bit of information is needed to know what they are. Note that these systems are shared libraries and thus useless without an application program using them. XPK, XFD and XAD have some easy application programs included in the distribution, but most important are all the other applications using them. XPRxxxxx.library: (XPR = eXternal PRotocol) First of all there was the idea to implement program independent transfer protocols to make different transfer system support a lot better than it was this time. The xprxxxxx.libraries were invented. Most of the protocols are wellknown from mailbox times (Z-Modem, X-Modem, Y-Modem, Kermit, ...). Before the XPR libraries existed, the programs supported the protocols directly and most time only some of them and always missing the one you needed yourself. XPR made an end to that. You only copy the specific library to LIBS: and select it in the terminal program (like Term) and know you can use it. The libraries can be developed by different authors and totally independent from any terminal program. To be able to do so, all the libraries use a standard interface, which does not differ in all the libraries. So the terminal programm does not need to do anything special, but only call the requiered function and the XPR library is doing its work. XEMxxxxx.library: (XEM = eXternal EMulation) Like the XPR libraries, these libraries can be developed totally independant from terminal programs. They present a set of different terminal emulations (VT100, VT340, RIP, ...) and are designed a lot like the XPR libraries. XPKxxxx.library: (XPK = eXternal PacKer) This system was developed by Urban Dominik Müller and some other persons and is continued by me. Its main concept is taken from XPR, but it is used totally different. It is no longer used with terminal programs, but with any program. XPK is a system to pack and unpack data in a standardized data format XPKF. XPK consists of one xpkmaster.library, which does all the work you need to do to support packing (data handling, file format creation, parameter checking, ...) and a lot of sub libraries, which are equal to the XPR libraries. They have an standardized interface and are stored in LIBS:compressors directory. Normally you call the master library when you need to pack or unpack something. You also may use the sub libraries directly (like for XPR). The sub libraries all implement different packing or encrypting algorithms. In an application program the user only needs to select one of the libraries and the program now uses that algorithm. This allows applications to use up-to-date compression/encryption without spending a lot of work implementing these in the program itself. And the user is able to select parameters like "low packrate - high speed" or "best rate - lower speed" or any other combination he likes. XFDmaster.library: (XFD = eXternal File Decruncher) Another system developed by Georg Hörmann. This system allows to decrunch any type of crunched Amiga data (executable programs, data files). Unlike XPK, which only decrunches its own types, XFD decrunches data of all the other packer system developed over the years. XFD cannot crunch data, only decrunch. Like XPK it consists of one xfdmaster.library doing all the work. Unlike XPK the slaves can no longer be accessed directly, as they are no longer libraries. Each slave is either internally in the library or an extern file in LIBS:xfd. The extern slaves are normal Amiga executable files with a standard interface allowing xfdmaster.library to call their functions. These extern files can be developed independend from xfdmaster.library by different authors, like it is for the other 4 systems. Like for XPK, I'm now the author of the XFD system at least until Georg wants back the authorship. XADmaster.library: (XAD = eXternal Archive Decruncher) This is the last system in this line. It's developed by myself and really the newest. It is much like XFD system, but it dearchives file and disk archives instead of files. The xadmaster.library gives application programs a standard interface to extract files from file archives (lha, lzx, ...) or unarchive disk archives (dms, zoom, ...). Like XFD, the XAD system has library internal clients and extern clients stored in LIBS:xad directory. These extern clients are Amiga executable files like for XFD, but they have a totally different interface. Additional words: As XPK and XFD both decrunch data, they are linked a bit. XFD always decrunches XPKF files by calling xpkmaster.library. XPK itself asks xfdmaster.library, wheather a certain format is known to it and if it is, XPK calls XFD to decrunch it. In this way XPK can decrunch some of the non-XPK file types using XFD. As XPK needs to know which size the file will have after decrunching, before the file is really decrunched, not all of XFD's slaves are supported by XPK. Only slaves for crunched data files which return uncrunched size on recognition are supported. Also XAD clients may call XPK or XFD system to decrunch their data. "Clients" (XAD), "Slaves" (XFD) and "Sub Libraries" (XPK) are different words for the same thing: The parts really doing the work. Dirk Stöcker 25th November 1998